package com.yqxc.folkspace.util;

import org.apache.tomcat.util.http.fileupload.IOUtils;
import org.springframework.stereotype.Service;

import javax.servlet.http.HttpServletResponse;
import java.io.*;

/**
 * @author 元启星辰（北京）科技有限公司
 * @describe 文件工具类：上传文件 下载文件
 * @date 2021-12-25
 */
@Service
public class FileUtil {

    // 下载文件的后缀
    private final String SUFFIX = ".txt";

    /**
     * 文件下载
     *
     * @param response    返回
     * @param fileName    文件名
     * @param fileContent 文件内容字符串
     */
    public void downloadFile(HttpServletResponse response, String fileName, String fileContent) {

        // 设置response的内容属性
        // 二进制流
        response.setContentType("application/octet-stream");
        response.setContentLength((int) fileContent.length());

        // 设置response的header
        // 设置文件名
        String headerKey = "Content-Disposition";
        String headerValue = String.format("attachment; filename=\"%s\"", fileName + SUFFIX);
        response.setHeader(headerKey, headerValue);

        // 复制文件流到response返回流
        try {
            InputStream inputStream = new ByteArrayInputStream(fileContent.getBytes());
            IOUtils.copy(inputStream, response.getOutputStream());
            response.flushBuffer();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}
